<?php
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
*/

include_once("../logica/MainImport.php");
include_once("../logica/Usuario.php");

class FachadaBD {

    // Para implementar el patron singleton.
    private static $instance;

    // Metodo que permite obtener la unica instancia de la clase.
    public static function getInstance() {

        //si no existe instancia de la clase se crea
        // si existe se retorna la instancia existente.
        if( self::$instance == null ) {
            self::$instance = new self();
        }

        return self::$instance;
    }

    // Privado se previene la creacion via new.
    private function __construct() {

    }

    // Para evitar la clonacion de este objeto.
    private function __clone() {
        throw new Exception('No se puede clonar');
    }

    public function __wakeup() {
        throw new Exception("No se puede deserializar una instancia de ". get_class($this) ." class.");
    }


    public function __sleep() {
        throw new Exception("No se puede serializar una instancia de ". get_class($this) ." class.");
    }

    //Conecta y selecciona la base de datos del proyecto.
    function conectarse() {

        // Conecta con la base de datos.
        $link = mysql_connect("localhost", "administrator", "salsa") or die('Error conectando');

        // Selecciona la base de datos.
        //OJO CON ESTO: no puede llamarse link la variable (le puse ok)
        if(!($ok = mysql_select_db("spabdatop", $link))) {
            echo "Error seleccionando la base de datos: " . $bd;
            exit();
        }

        return $link;
    }

    // Funcion para desconectarse de la base de datos.
    function desconectar($link) {
        mysql_close($link);
    }

/*
     * Inserta una persona afectada.
    */
    function insertarUsuario($usuario) {
		
        // Construye el query para insertar una persona afectada.
        $query = "INSERT INTO usuario(nombres,apellidos, correo, universidad,
                                               password,justificacion, profesorEncargado, tipoUsuario)
                  VALUES ('$usuario->nombre', '$usuario->apellido',
                          '$usuario->correo', '$usuario->universidad',
                          '$usuario->password','$usuario->justificacion',
                          '$usuario->profesorEncargado', '$usuario->tipoUsuario' );";

        // Se conecta a una base de datos.
        //echo $query;exit;
        $conexion = $this->conectarse();
		
        // Hace la consulta.
        if (!mysql_query($query)) {	
			
            return false;
        }

        // Se desconecta.
        $this->desconectar($conexion);

        return true;
    }
	
	function existeUsuario($usuario) {

        // Construye el query para insertar un usuario.
        $query = "SELECT correo,nombres,apellidos
					FROM usuario
						WHERE correo = '$usuario';";
        
        // Se conecta a una base de datos.
        $conexion = $this->conectarse();

        // Hace la consulta.
        if (!mysql_query($query)) {
            return false;
        }
        $result = mysql_query($query);
         $usuario_existe = mysql_num_rows($result);
        // Se desconecta.
        $this->desconectar($conexion);
        
        return $usuario_existe;
    }

    function desactivarUsuario($correo) {

        // Construye el query para insertar un usuario.
        $query = "UPDATE usuario SET status = 0 WHERE correo = '$correo';";

        $conexion = $this->conectarse();

        // Hace la consulta.
        if (!mysql_query($query)) {

            return false;
        }

        // Se desconecta.
        $this->desconectar($conexion);

        return true;
    }

    function activarUsuario($correo) {

        // Construye el query para insertar un usuario.
        $query = "UPDATE usuario SET status = 1 WHERE correo = '$correo';";

        $conexion = $this->conectarse();

        // Hace la consulta.
        if (!mysql_query($query)) {

            return false;
        }

        // Se desconecta.
        $this->desconectar($conexion);

        return true;
    }

    

}
?>
